public class JumpGameII0105_45 {

    //尽可能少的步数 使得覆盖范围尽可能大。
    public int jump(int[] nums) {
        int cover = 0;//当前覆盖范围

        int nextCover = 0; //下一步的覆盖范围

        int res = 0; //统计跳几步

        for (int i = 0; i < nums.length; i++) {
            nextCover = Math.max(nextCover,i+nums[i]);
            if(i == cover){ //如果便利到当前覆盖返回末尾，判断是否到达终点,若未到达 则下一跳
                if(cover != nums.length-1) { // 未达到终点
                    res++; //统计步数
                    cover = nextCover;
                    if(cover >= nums.length -1) break; //达到终点
                }else break;//达到终点
            }
        }
        return res;
    }
}
